package cn.fang2chen.java.distributed.lock.framework;

import java.util.concurrent.locks.Lock;

/**
 * 分布式锁接口
 * 继承 {@code Lock}
 *
 * @author dcmini chen
 * @since 1.0.0
 */
public interface DistributedLock extends Lock{

    /**
     * 是否处于锁定状态
     *
     * @return {@code true} 锁定
     * {@code false} 未锁定
     */
    boolean isLocked();

    /**
     * 锁剩余的时长
     * {@code -1} 表示永远不会超时
     *
     * @return 剩余时长 单位 ms
     */
    long remainingTime();

}
